package com.playball.lottery.frm.yhzx;

import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONTokener;

import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.playball.lottery.R;
import com.playball.lottery.ApplicationData;
import com.playball.lottery.base.BaseActivity;
import com.playball.lottery.customview.ShowTipDialog;
import com.playball.lottery.nt.GetRequestParams;


/**
 * 安全中心 - 登录密码
 * 
 * @author tanglizhong
 * @version 2014-3-26 上午10:37
 */
public class ScLoginPwdActivity extends BaseActivity {

	/**
	 * 安全问题布局
	 */
	private View view_sc_loginpwd_question;
	/** 安全问题 */
	private TextView yhzx_sc_tv_question;
	/** 答案 */
	private EditText yhzx_sc_et_answer;
	/** 下一步 */
	private Button yhzx_sc_btn_next;

	/**
	 * 修改密码布局
	 */
	private View view_sc_loginpwd_change;
	/** 当前密码 */
	private EditText yhzx_sc_et_loginpwd_old;
	/** 新密码 */
	private EditText yhzx_sc_et_loginpwd_new;
	/** 确认密码 */
	private EditText yhzx_sc_et_loginpwd_confirm;
	/** 确认修改按钮 */
	private Button yhzx_sc_et_loginpwd_submit;

	/** 共享数据库 */
	private SharedPreferences sp;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.yhzx_sc_login_pwd);

		titleBar();
		initView();
		initData();
	}

	public void onResume() {
		super.onResume();
		
	}

	public void onPause() {
		super.onPause();
		
	}

	/**
	 * 初始化数据
	 */
	private void initData() {
		// TODO Auto-generated method stub
		sp = ScLoginPwdActivity.this.getSharedPreferences("userNamesFile", Activity.MODE_PRIVATE);
	}

	/**
	 * 初始化组件
	 */
	private void initView() {
		view_sc_loginpwd_question = findViewById(R.id.view_sc_loginpwd_question);
		yhzx_sc_tv_question = (TextView) findViewById(R.id.yhzx_sc_tv_question);
		yhzx_sc_et_answer = (EditText) findViewById(R.id.yhzx_sc_et_answer);
		yhzx_sc_btn_next = (Button) findViewById(R.id.yhzx_sc_btn_next);
		yhzx_sc_btn_next.setOnClickListener(btn_onclick);

		view_sc_loginpwd_change = findViewById(R.id.view_sc_loginpwd_change);
		yhzx_sc_et_loginpwd_old = (EditText) findViewById(R.id.yhzx_sc_et_loginpwd_old);
		yhzx_sc_et_loginpwd_new = (EditText) findViewById(R.id.yhzx_sc_et_loginpwd_new);
		yhzx_sc_et_loginpwd_confirm = (EditText) findViewById(R.id.yhzx_sc_et_loginpwd_confirm);
		yhzx_sc_et_loginpwd_submit = (Button) findViewById(R.id.yhzx_sc_et_loginpwd_submit);
		yhzx_sc_et_loginpwd_submit.setOnClickListener(btn_onclick);
	}

	private View.OnClickListener btn_onclick = new View.OnClickListener() {
		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			switch (v.getId()) {
			case R.id.yhzx_sc_btn_next:
				// view_sc_loginpwd_question.setVisibility(View.GONE);
				// view_sc_loginpwd_change.setVisibility(View.VISIBLE);
				break;
			case R.id.yhzx_sc_et_loginpwd_submit:
				// view_sc_loginpwd_question.setVisibility(View.VISIBLE);
				// view_sc_loginpwd_change.setVisibility(View.GONE);

				oldPw = yhzx_sc_et_loginpwd_old.getText().toString();
				newPw = yhzx_sc_et_loginpwd_new.getText().toString();
				confirmPw = yhzx_sc_et_loginpwd_confirm.getText().toString();

				if (oldPw.indexOf(" ") >= 0) {
					yhzx_sc_et_loginpwd_old.setError("密码中不能使用空格");
				} else if (newPw.indexOf(" ") >= 0) {
					yhzx_sc_et_loginpwd_new.setError("密码中不能使用空格");
				} else if (confirmPw.indexOf(" ") >= 0) {
					yhzx_sc_et_loginpwd_confirm.setError("密码中不能使用空格");
				} else {

					if (oldPw.length() < 6 || oldPw.length() > 15) {
						yhzx_sc_et_loginpwd_old.setError("6到15位字符组成");
					} else if (!newPw.equals(confirmPw)) {
						yhzx_sc_et_loginpwd_confirm.setError("确认密码不正确");
					} else if (newPw.length() < 6 || newPw.length() > 15) {
						yhzx_sc_et_loginpwd_new.setError("6到15位字符组成");
					} else {
						AsyncLoader task = new AsyncLoader();
						task.execute("106");
					}

				}
				break;
			}
		}
	};

	/** 旧密码 */
	String oldPw;
	/** 新密码 */
	String newPw;
	/** 确认密码 */
	String confirmPw;

	/**
	 * 修改登录密码
	 */
	private class AsyncLoader extends AsyncTask<String, Integer, String> {
		ShowTipDialog showdialog = new ShowTipDialog();

		@Override
		protected void onPreExecute() {
			showdialog.showDialog(ScLoginPwdActivity.this);
		}

		@Override
		protected String doInBackground(String... params) {
			String action = params[0];
			String strResult;

			try {
				JSONObject param = new JSONObject();
				param.put("oldPw", oldPw);
				param.put("newPw", newPw);

				String UserID = ApplicationData.getInstance().getUserID();
				strResult = GetRequestParams.getRequestUserIDResult(param.toString(), UserID, action,
						getApplicationContext());
				return strResult;
			} catch (JSONException e) {
				// e.printStackTrace();
				return null;
			}
		}

		@Override
		protected void onPostExecute(String result) {
			try {
				if (null != result) {
					JSONTokener jsonParser = new JSONTokener(result);
					JSONObject js = (JSONObject) jsonParser.nextValue();
					if (js.getInt("Code") == 0) {
						String data = js.getString("Data");
						// Log.d("van", js.getInt("Code") +"-----------"+data);
						showTip(data);
						Editor edit = sp.edit();
						edit.putString(ApplicationData.getInstance().getUserName(), newPw);
						edit.commit();
						ScLoginPwdActivity.this.finish();
					} else {
						String data = js.getString("Data");
						// Log.d("van", js.getInt("Code") +"-----------"+data);
						showTip(data);
					}

				}
			} catch (JSONException e) {
				// e.printStackTrace();
			} finally {
				showdialog.closeDialog();
			}
		}

	}

	/** TitleBar标题栏 */
	public void titleBar() {
		TextView info = (TextView) findViewById(R.id.top_title_info);
		info.setText(R.string.yhzx_sc_loginp_wd);
		TextView back = (TextView) findViewById(R.id.top_title_back);
		back.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				finish();
			}
		});
	}

	/** 显示文字提示 */
	private void showTip(String tip) {
		Toast.makeText(this, tip, Toast.LENGTH_SHORT).show();
	}

}
